Near Cache এবং Caching Techniques

Database Tutorials - হ্যাজেলকাস্ট  (Hazelcast) Hazelcast Caching |
282
282

Near Cache এবং Caching Techniques হল Hazelcast-এর গুরুত্বপূর্ণ বৈশিষ্ট্য, যা ডেটা অ্যাক্সেসের গতি বৃদ্ধি করতে সাহায্য করে এবং সিস্টেমের পারফরম্যান্স উন্নত করে। Near Cache ব্যবহার করার মাধ্যমে আপনি ডেটাকে ক্লায়েন্ট সাইডে ক্যাশ করতে পারেন, যা মূল সার্ভার থেকে বারবার ডেটা রিট্রাইভালের প্রয়োজনীয়তা কমিয়ে দেয়। এটির মাধ্যমে ডেটা রিটার্নের সময় কমানো এবং সিস্টেমের স্কেলেবিলিটি বৃদ্ধি করা সম্ভব হয়।

এখানে Near Cache এবং Caching Techniques-এর বিস্তারিত আলোচনা করা হলো:


Near Cache

Near Cache হল একটি ক্যাশিং মেকানিজম যা Hazelcast ক্লায়েন্টে ক্যাশ রাখা হয়। এটি ক্লায়েন্ট সাইডে ডেটা সংরক্ষণ করে, যাতে ডেটা দ্রুত অ্যাক্সেস করা যায় এবং সার্ভার থেকে অতিরিক্ত রিকোয়েস্ট না পাঠাতে হয়।

Near Cache এর বৈশিষ্ট্য:

  • ক্লায়েন্ট-সাইড ক্যাশ: Near Cache ক্লায়েন্টের কাছাকাছি ডেটা রাখে, যা সার্ভারের সাথে পুনরায় যোগাযোগ করার প্রয়োজন কমিয়ে দেয়।
  • পুনরায় ব্যবহারের জন্য দ্রুত অ্যাক্সেস: যেহেতু ডেটা ক্লায়েন্টে ক্যাশ করা হয়, বারবার একই ডেটা রিটার্নের সময় অত্যন্ত কম হয়।
  • দ্রুত পারফরম্যান্স: Near Cache-এর মাধ্যমে সাধারণ ডেটা অ্যাক্সেস দ্রুত হয়, কারণ এটি ডেটা সরাসরি ক্লায়েন্ট থেকে রিটার্ন করে।
  • ডিস্ট্রিবিউটেড ক্যাশ: যখন ক্লায়েন্ট Near Cache থেকে ডেটা পাঠায়, সেটি স্বয়ংক্রিয়ভাবে সার্ভারের সঙ্গে সিঙ্ক্রোনাইজড থাকে।

Near Cache কিভাবে কাজ করে:

  • যখন কোনো ক্লায়েন্ট প্রথমবার ডেটা চায়, এটি Hazelcast সার্ভারের কাছ থেকে ডেটা রিট্রাইভ করে এবং ক্লায়েন্টের Near Cache-এ সংরক্ষণ করে।
  • পরবর্তী সময়ে একই ডেটা চাওয়ার সময়, এটি সরাসরি Near Cache থেকে রিটার্ন হয়, সার্ভারের কাছে যাওয়ার প্রয়োজন পড়ে না।
  • যদি ডেটা পরিবর্তিত হয়, তবে Near Cache-টি আপডেট করা হয় অথবা পুনরায় সার্ভারের সাথে সিঙ্ক করা হয়।

Near Cache ব্যবহার করার উদাহরণ:

Config config = new Config();
MapConfig mapConfig = new MapConfig();
mapConfig.setName("myMap")
         .setNearCacheConfig(new NearCacheConfig().setInMemoryFormat(InMemoryFormat.BINARY));
config.addMapConfig(mapConfig);
HazelcastInstance hz = Hazelcast.newHazelcastInstance(config);

IMap<String, String> map = hz.getMap("myMap");
map.put("key", "value");

// Closer to the client-side, data is fetched directly from Near Cache
String value = map.get("key");  // This fetches the data from Near Cache, not from the server

Caching Techniques

Hazelcast ক্যাশিং মেকানিজম অনেক ধরনের কৌশল এবং পদ্ধতি ব্যবহার করে, যা সিস্টেমের পারফরম্যান্স উন্নত করে এবং ডেটা অ্যাক্সেসের গতি বাড়ায়। নিচে Hazelcast-এর বিভিন্ন ক্যাশিং কৌশল এবং তাদের ব্যবহার উল্লেখ করা হল:

1. Local Cache vs Distributed Cache:

  • Local Cache: ডেটা ক্লায়েন্ট সাইডে রাখা হয় এবং এটি শুধুমাত্র নির্দিষ্ট ক্লায়েন্টের জন্য অ্যাক্সেসযোগ্য। এটি এমন সিস্টেমের জন্য উপযুক্ত যেখানে ডেটা কম্পিউটেশন স্থানীয় পর্যায়ে করতে হবে।
  • Distributed Cache: Hazelcast-এর মূল বৈশিষ্ট্য হল ডিস্ট্রিবিউটেড ক্যাশ। যেখানে একাধিক ক্লাস্টার নোডের মধ্যে ডেটা ভাগ করা হয়, এবং ডেটা সমন্বিতভাবে অ্যাক্সেস করা যায়।

2. JCache (JSR 107) ব্যবহার:

Hazelcast JCache API (JSR 107) সমর্থন করে, যা ক্যাশিংয়ের জন্য একটি স্ট্যান্ডার্ড। এটি বিভিন্ন ক্যাশ অপারেশন, যেমন put, get, remove, clear ইত্যাদি করার জন্য ব্যবহৃত হয়।

JCache উদাহরণ:

// Create cache configuration
CacheConfig<String, String> cacheConfig = new CacheConfig<>();
cacheConfig.setName("myCache");

Cache<String, String> cache = hazelcastInstance.getCacheManager().createCache("myCache", cacheConfig);

// Add and get data from the cache
cache.put("key", "value");
String cachedValue = cache.get("key");

3. Near Cache (Client-side cache):

Near Cache-এ ক্লায়েন্ট সাইডে ডেটা সংরক্ষণ করা হয়, যাতে তা দ্রুত অ্যাক্সেস করা যায় এবং সার্ভারের উপর লোড কমানো যায়। এটি বিশেষভাবে কার্যকর যখন ডেটা পুনরায় ব্যবহার হয় এবং সিস্টেমে অধিক লোড নেই।

4. Cache Expiration Techniques:

  • Time-to-Live (TTL): ক্যাশে রাখা ডেটা একটি নির্দিষ্ট সময়ের পর স্বয়ংক্রিয়ভাবে মুছে ফেলা হয়। এটি ডেটা এক্সপায়ারেশনের জন্য ব্যবহার হয়।
  • Max Idle Time: ডেটা যদি কিছু সময়ের জন্য অ্যাক্সেস না হয়, তবে সেটি ক্যাশ থেকে মুছে ফেলা হয়।
  • LRU (Least Recently Used): ক্যাশে সীমিত জায়গা থাকলে, এটি সর্বশেষ ব্যবহার না হওয়া ডেটাকে প্রথমে মুছে দেয়।

5. Cache Eviction Policies:

Hazelcast ক্যাশে স্টোরেজের জন্য বিভিন্ন Eviction Policies প্রয়োগ করতে পারে:

  • LRU: সর্বশেষ ব্যবহৃত না হওয়া ডেটা সরিয়ে ফেলা হয়।
  • LFU: সর্বাধিক ব্যবহৃত ডেটা রেখে, কম ব্যবহৃত ডেটা সরিয়ে ফেলা হয়।

6. Distributed Cache with Replication:

Hazelcast-এর ডিস্ট্রিবিউটেড ক্যাশে ডেটা রেপ্লিকেশন সমর্থন করে, যেখানে ডেটার কপি একাধিক ক্লাস্টার নোডে সঞ্চিত থাকে। এটি ডেটা পাওয়া সহজ করে এবং উচ্চ উপলব্ধতা নিশ্চিত করে।


Near Cache এবং Caching Techniques এর উপকারিতা

  • পারফরম্যান্স উন্নতি: Near Cache এবং অন্যান্য ক্যাশিং কৌশল সিস্টেমের পারফরম্যান্স দ্রুততর করতে সাহায্য করে, কারণ ডেটা সরাসরি ক্লায়েন্ট সাইড থেকে অ্যাক্সেস করা হয়।
  • লোড ব্যালেন্সিং: ক্যাশিং প্রযুক্তি সার্ভারের লোড কমাতে সাহায্য করে, কারণ ডেটার একটি কপি ক্লায়েন্ট সাইডে থাকতে পারে।
  • স্কেলেবিলিটি: Hazelcast ক্যাশিং এবং Near Cache সিস্টেমের স্কেলেবিলিটি উন্নত করে, কারণ ডেটা ডিস্ট্রিবিউটেড এবং ক্লাস্টারড থাকে।

সারাংশ

Near Cache এবং Caching Techniques Hazelcast-এর অত্যন্ত কার্যকরী ক্যাশিং বৈশিষ্ট্য যা ডেটা অ্যাক্সেসের গতি বাড়ায় এবং সিস্টেমের পারফরম্যান্স উন্নত করে। Near Cache ক্লায়েন্ট সাইডে ডেটা ক্যাশ করে এবং অন্যান্য ক্যাশিং কৌশল যেমন TTL, Eviction Policies, এবং JCache সমর্থন করে বিভিন্ন ডেটা অ্যাক্সেস অপটিমাইজেশন কৌশল।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion